package com.david.core.utils

//参考链接：https://help.aliyun.com/zh/oss/user-guide/resize-images-4?spm=a2c4g.11186623.0.0.815b23e3lsFaZa
//其他高斯模糊、添加水印、旋转、获取主色调可参考文档


//腾讯云图片格式转换参考：https://cloud.tencent.com/document/product/1246/109193
//自己搭建的服务器可通过thumbNail等三方库实现

/**
 * 通过阿里云oss转换为webp格式图片； /ignore-error,1：超大图转换失败时返回原图
 * @param url 图片链接
 * @return 转换后的链接
 */
fun turnWebp(url: String?): String? {
    if (url.isNullOrEmpty() || url.contains("?")) {
        return url
    }
    return "$url?x-oss-process=image/format,webp/ignore-error,1"
}


/**
 * 通过阿里云oss根据传入的宽度转换为webp格式图片， 参考：https://oss-console-img-demo-cn-hangzhou.oss-cn-hangzhou.aliyuncs.com/example.jpg?x-oss-process=image/resize,w_300,m_lfit
 * @param url 图片链接
 * @param width 宽度
 * @return 转换后的链接
 */
fun turnWebpWithWidth(url: String?, width: Int): String? {
    if (url.isNullOrEmpty() || url.contains("?")) {
        return url
    }
    return "$url?x-oss-process=image/resize,w_$width,m_lfit/format,webp/ignore-error,1"
}


/**
 * 通过阿里云oss根据传入的宽度转换为webp格式图片， 参考：https://oss-console-img-demo-cn-hangzhou.oss-cn-hangzhou.aliyuncs.com/example.jpg?x-oss-process=image/resize,w_300,m_lfit
 * @param url 图片链接
 * @param width 宽度
 * @return 转换后的链接
 */
fun turnWebpWithWidth(url: String?, width: Float): String? {
    return turnWebpWithWidth(url, width.toInt())
}


/**
 * 通过阿里云oss根据传入的高度转换为webp格式图片， 参考：https://oss-console-img-demo-cn-hangzhou.oss-cn-hangzhou.aliyuncs.com/example.jpg?x-oss-process=image/resize,h_300,m_lfit
 * @param url 图片链接
 * @param height 高度
 * @return 转换后的链接
 */
fun turnWebpWithHeight(url: String?, height: Int): String? {
    if (url.isNullOrEmpty() || url.contains("?")) {
        return url
    }
    return "$url?x-oss-process=image/resize,h_$height,m_lfit/format,webp/ignore-error,1"
}


/**
 * 通过阿里云oss根据传入的高度转换为webp格式图片， 参考：https://oss-console-img-demo-cn-hangzhou.oss-cn-hangzhou.aliyuncs.com/example.jpg?x-oss-process=image/resize,h_300,m_lfit
 * @param url 图片链接
 * @param height 高度
 * @return 转换后的链接
 */
fun turnWebpWithHeight(url: String?, height: Float): String? {
    return turnWebpWithHeight(url, height.toInt())
}

/**
 * 通过阿里云oss根据传入的宽度高度转换为webp格式图片， 参考：https://oss-console-img-demo-cn-hangzhou.oss-cn-hangzhou.aliyuncs.com/example.jpg?x-oss-process=image/resize,w_300,h_300,m_lfit
 * @param url 图片链接
 * @param height 宽度
 * @param height 高度
 * @return 转换后的链接
 */
fun turnWebpWithWidthHeight(url: String?, width: Int, height: Int): String? {
    if (url.isNullOrEmpty() || url.contains("?")) {
        return url
    }
    return "$url?x-oss-process=image/resize,w_$width,h_$height,m_fill/format,webp/ignore-error,1"
}


/**
 * 通过阿里云oss根据传入的宽度高度转换为webp格式图片， 参考：https://oss-console-img-demo-cn-hangzhou.oss-cn-hangzhou.aliyuncs.com/example.jpg?x-oss-process=image/resize,w_300,h_300,m_lfit/format,webp
 * @param url 图片链接
 * @param height 宽度
 * @param height 高度
 * @return 转换后的链接
 */
fun turnWebpWithWidthHeight(url: String?, width: Float, height: Float): String? {
    return turnWebpWithWidthHeight(url, width.toInt(), height.toInt())
}

/**
 * 通过阿里云oss转换为圆角webp格式图片， 参考：https://oss-console-img-demo-cn-hangzhou.oss-cn-hangzhou.aliyuncs.com/example.jpg?x-oss-process=image/rounded-corners,r_30/format,webp
 * @param url 图片链接
 * @param cornerRadius 四个角的圆角
 * @return 转换后的链接
 */
fun turnWebpRound(url: String?, cornerRadius: Int): String? {
    if (url.isNullOrEmpty() || url.contains("?")) {
        return url
    }
    return "$url?x-oss-process=image/rounded-corners,r_$cornerRadius/format,webp/ignore-error,1"
}


/**
 * 通过阿里云oss转换为圆角webp格式图片， 参考：https://oss-console-img-demo-cn-hangzhou.oss-cn-hangzhou.aliyuncs.com/example.jpg?x-oss-process=image/rounded-corners,r_30/format,webp
 * @param url 图片链接
 * @param cornerRadius 四个角的圆角
 * @return 转换后的链接
 */
fun turnWebpRound(url: String?, cornerRadius: Float): String? {
    return turnWebpRound(url, cornerRadius.toInt())
}


/**
 * 通过阿里云oss转换为圆角webp格式图片， 参考：https://oss-console-img-demo-cn-hangzhou.oss-cn-hangzhou.aliyuncs.com/example.jpg?x-oss-process=image/resize,w_300,h_300,m_fill/rounded-corners,r_30/format,webp
 * @param url 图片链接
 * @param width 宽度
 * @param height 高度
 * @param cornerRadius 四个角的圆角
 * @return 转换后的链接
 */
fun turnWebpRoundWidthWidthHeight(url: String?, width: Int, height: Int, cornerRadius: Int): String? {
    if (url.isNullOrEmpty() || url.contains("?")) {
        return url
    }
    return "$url?x-oss-process=image/resize,w_$width,h_$height,m_fill/rounded-corners,r_$cornerRadius/format,webp/ignore-error,1"
}


/**
 * 通过阿里云oss转换为圆角webp格式图片， 参考：https://oss-console-img-demo-cn-hangzhou.oss-cn-hangzhou.aliyuncs.com/example.jpg?x-oss-process=image/resize,w_300,h_300,m_fill/rounded-corners,r_30/format,webp
 * @param url 图片链接
 * @param width 宽度
 * @param height 高度
 * @param cornerRadius 四个角的圆角
 * @return 转换后的链接
 */
fun turnWebpRoundWidthWidthHeight(url: String?, width: Float, height: Float, cornerRadius: Float): String? {
    return turnWebpRoundWidthWidthHeight(url, width.toInt(), height.toInt(), cornerRadius.toInt())
}

//
///**
// * 通过阿里云oss转换为圆形webp格式图片， 参考：https://oss-console-img-demo-cn-hangzhou.oss-cn-hangzhou.aliyuncs.com/example.jpg?x-oss-process=image/circle,r_30/format,webp
// * @param url 图片链接
// * @param circleRadius 圆形半径
// * @return 转换后的链接
// */
//fun turnWebpCircle(url: String?, circleRadius: Int): String? {
//    if (url.isNullOrEmpty() || url.contains("?")) {
//        return url
//    }
//    return "$url?x-oss-process=image/circle,r_$circleRadius/format,webp"
//}
//
//
///**
// * 通过阿里云oss转换为圆形webp格式图片， 参考：https://oss-console-img-demo-cn-hangzhou.oss-cn-hangzhou.aliyuncs.com/example.jpg?x-oss-process=image/circle,r_30/format,webp
// * @param url 图片链接
// * @param circleRadius 圆形半径
// * @return 转换后的链接
// */
//fun turnWebpCircle(url: String?, circleRadius: Float): String? {
//    return turnWebpCircle(url, circleRadius.toInt())
//}